home *** CD-ROM | disk | FTP | other *** search
/ PC World 2007 June / PCWorld_2007-06_cd.bin / v cisle / tclock / tclocklight-040702-3.exe / source / common / common.h < prev    next >
C/C++ Source or Header  |  2004-09-07  |  13KB  |  408 lines

  1. /*-------------------------------------------
  2.   common.h
  3. ---------------------------------------------*/
  4.  
  5. #define _WIN32_IE    0x0200
  6. #define _WIN32_WINNT 0x0400
  7. #define WINVER       0x0400
  8.  
  9. #include <windows.h>
  10.  
  11. #define TCLOCKVERSION     "TClock Light 040424"
  12.  
  13. #define CLASS_TCLOCKMAIN   "TClockMainClass"
  14. #define CLASS_TCLOCKPROP   "TClockPropertyClass"
  15. #define CLASS_TCLOCKTIMER  "TClockTimerClass"
  16. #define CLASS_TCLOCKPLAYER "TClockPlayerClass"
  17. #define CLASS_TCLOCKSNTP   "TClockSNTPClass"
  18. #define TITLE_TCLOCKMAIN   "TClock"
  19.  
  20. #define REGMYKEY  "Software\\Kazubon\\TClock"
  21.  
  22. #define TCLANGTXT "tclang.txt"
  23. #define TCMENUTXT "tcmenu.txt"
  24. #define LANGDIR   "lang"
  25.  
  26. /* -- messages to send to tcdll.tclock ----------------- */
  27.  
  28. #define CLOCKM_REFRESHCLOCK     (WM_USER+1)
  29. #define CLOCKM_REFRESHTASKBAR   (WM_USER+2)
  30. #define CLOCKM_BLINK            (WM_USER+3)
  31. #define CLOCKM_COPY             (WM_USER+4)
  32. #define CLOCKM_REFRESHDESKTOP   (WM_USER+5)
  33. #define CLOCKM_VOLCHANGE        (WM_USER+6)
  34. #define CLOCKM_NETINIT          (WM_USER+7)
  35. #define CLOCKM_DELUSRSTR        (WM_USER+8)
  36. #define CLOCKM_EXIT             (WM_USER+9)
  37. #define CLOCKM_REFRESHSTARTMENU (WM_USER+10)
  38. #define CLOCKM_REFRESHTOOLTIP   (WM_USER+11)
  39.  
  40. /* -- messages to send to tclock.exe ------------------ */
  41.  
  42. #define TCM_HWNDCLOCK       WM_USER
  43. #define TCM_CLOCKERROR      (WM_USER+1)
  44. #define TCM_EXIT            (WM_USER+2)
  45. #define TCM_STOPSOUND       (WM_USER+3)
  46. #define TCM_RELOADSETTING   (WM_USER+4)
  47. #define TCM_DESKCAL         (WM_USER+10)
  48. #define TCM_REQUESTSNTPLOG  (WM_USER+11)
  49.  
  50. /* -- messages to send to tctimer.exe ------------------ */
  51. #define TIMERM_SHOWDLG      (WM_USER+1)
  52. #define TIMERM_REQUESTMENU  (WM_USER+2)
  53. #define TIMERM_STOP         (WM_USER+3)
  54.  
  55. /* -- messages to send to tcplayer.exe ------------------ */
  56. #define PLAYERM_SHOWDLG     (WM_USER+1)
  57. #define PLAYERM_REQUESTMENU (WM_USER+2)
  58. #define PLAYERM_STOP        (WM_USER+3)
  59. #define PLAYERM_PAUSE       (WM_USER+4)
  60. #define PLAYERM_PREV        (WM_USER+5)
  61. #define PLAYERM_NEXT        (WM_USER+6)
  62.  
  63. /* -- dwData of COPYDATASTRUCT ----------------------- */
  64.  
  65. #define COPYDATA_USTR0      0
  66. #define COPYDATA_USTR1      1
  67. #define COPYDATA_USTR2      2
  68. #define COPYDATA_USTR3      3
  69. #define COPYDATA_USTR4      4
  70. #define COPYDATA_USTR5      5
  71. #define COPYDATA_USTR6      6
  72. #define COPYDATA_USTR7      7
  73. #define COPYDATA_USTR8      8
  74. #define COPYDATA_USTR9      9
  75. #define COPYDATA_DISP1      100
  76. #define COPYDATA_DISP2      101
  77. #define COPYDATA_DISP3      102
  78. #define COPYDATA_CAT1       103
  79. #define COPYDATA_CAT2       104
  80. #define COPYDATA_CAT3       105
  81. #define COPYDATA_PLAY       106
  82. #define COPYDATA_SOUND      107
  83. #define COPYDATA_COPY       108
  84. #define COPYDATA_EXEC       109
  85. #define COPYDATA_SNTPLOG    110
  86. #define COPYDATA_SNTPLOGADD 111
  87.  
  88. /* -- buffer size --------------------------------------- */
  89.  
  90. #define BUFSIZE_FORMAT  256
  91. #define BUFSIZE_TOOLTIP 256
  92. #define BUFSIZE_DISP     41
  93. #define BUFSIZE_USTR     41
  94. #define BUFSIZE_NAME     40
  95.  
  96. /* -- alarmstruct.c ---------------------------------------- */
  97.  
  98. // struct of Alarm
  99. typedef struct _tagAlarmStruct
  100. {
  101.     char name[BUFSIZE_NAME];
  102.     BOOL bEnable;
  103.     char strHours[80];
  104.     char strMinutes[80];
  105.     char strWDays[80];
  106.     char hours[24];
  107.     char minutes[60];
  108.     char wdays[7];
  109.     int  second;
  110.     char fname[MAX_PATH];
  111.     BOOL bHour12;
  112.     BOOL bRepeat;
  113.     BOOL bRepeatJihou;
  114.     BOOL bBlink;
  115.     BOOL nBlinkSec;
  116.     BOOL bBootExec;
  117.     BOOL bInterval;
  118.     int  nInterval;
  119.     DWORD tickLast;
  120. } ALARMSTRUCT;
  121. typedef ALARMSTRUCT* PALARMSTRUCT;
  122.  
  123. void LoadAlarm(PALARMSTRUCT pAS, int count);
  124. void SaveAlarm(const PALARMSTRUCT pAS, int count);
  125. void SetAlarmTime(PALARMSTRUCT pAS);
  126.  
  127. /* -- autoformat.c ---------------------------------------- */
  128.  
  129. #define NUM_FORMATPART 11
  130. #define PART_YEAR4     0
  131. #define PART_YEAR      1
  132. #define PART_MONTH     2
  133. #define PART_MONTHS    3
  134. #define PART_DAY       4
  135. #define PART_WEEKDAY   5
  136. #define PART_HOUR      6
  137. #define PART_MINUTE    7
  138. #define PART_SECOND    8
  139. #define PART_BREAK     9
  140. #define PART_AMPM      10
  141.  
  142. void InitAutoFormat(int ilang);
  143. void AutoFormat(char* dst, BOOL* parts);
  144.  
  145. /* -- combobox.c ---------------------------------------- */
  146.  
  147. void InitColorCombo(HWND hDlg, int idCombo,
  148.     const COLORREF *pColAdd, int nAdd, COLORREF colDef);
  149. void OnMeasureItemColorCombo(LPMEASUREITEMSTRUCT pmis);
  150. void OnDrawItemColorCombo(LPDRAWITEMSTRUCT pdis, char (*pTexts)[80]);
  151. void ChooseColorWithCombo(HINSTANCE hInst, HWND hDlg,
  152.     int idCombo);
  153. void InitFontNameCombo(HWND hDlg, int idCombo, const char* deffont);
  154. void InitFontSizeCombo(HWND hDlg, int idCombo,
  155.     const char *fontname, int charset);
  156. void InitLocaleCombo(HWND hDlg, int idCombo, int deflang);
  157.  
  158. /* -- exec.c -------------------------------------------- */
  159. void RelToAbs(char *dst, const char *src);
  160. void GetFileAndOption(const char* command, char* fname, char* option);
  161. BOOL ExecFile(HWND hwnd, const char* command);
  162.  
  163. /* -- font.c -------------------------------------------- */
  164.  
  165. HFONT CreateMyFont(const char *fontname, int size,
  166.     LONG weight, LONG italic, int codepage);
  167.  
  168. /* -- langcode.c ---------------------------------------- */
  169.  
  170. BOOL LangIDToLangCode(char *dst, int langid, BOOL bCountry);
  171. BOOL FindFileWithLangCode(char *dst, int langid, const char* fname);
  172.  
  173. /* -- localeinfo.c ---------------------------------------- */
  174.  
  175. int GetCodePage(int ilang);
  176. int MyGetLocaleInfoW(int ilang, int codepage,
  177.     LCTYPE lctype, wchar_t* dst, int n);
  178. int MyGetLocaleInfoA(int ilang, int codepage,
  179.     LCTYPE lctype, char* dst, int n);
  180. int MyGetDateFormatW(int ilang, int codepage,
  181.     DWORD dwFlags, CONST SYSTEMTIME *t,
  182.     wchar_t* fmt, wchar_t* dst, int n);
  183. int MyGetTimeFormatW(int ilang, int codepage,
  184.     DWORD dwFlags, CONST SYSTEMTIME *t,
  185.     wchar_t* fmt, wchar_t* dst, int n);
  186.  
  187. /* -- mousestruct.c ---------------------------------------- */
  188.  
  189. // struct of Mouse
  190. typedef struct _tagMouseStruct
  191. {
  192.     char name[BUFSIZE_NAME];
  193.     int  nButton;
  194.     int  nClick;
  195.     BOOL bCtrl;
  196.     BOOL bShift;
  197.     BOOL bAlt;
  198.     int  nCommand;
  199.     char option[MAX_PATH];
  200. } MOUSESTRUCT;
  201. typedef MOUSESTRUCT* PMOUSESTRUCT;
  202.  
  203. void LoadMouseFunc(PMOUSESTRUCT pMSS, int count);
  204. void SaveMouseFunc(PMOUSESTRUCT pMSS, int count);
  205. void ImportOldMouseFunc(void);
  206.  
  207. /* -- nodeflib.c ---------------------------------------- */
  208.  
  209. #ifdef NODEFAULTLIB
  210.  
  211. void r_memcpy(void *d, const void *s, size_t l);
  212. void r_memset(void *d, int c, size_t l);
  213. char *r_strstr(const char *string, const char *strCharSet);
  214. int r_strncmp(const char* d, const char* s, size_t n);
  215. int r_strnicmp(const char* d, const char* s, size_t n);
  216. int r_atoi(const char *p);
  217. int r_atox(const char *p);
  218. int r__wtoi(const WCHAR *p);
  219. int r_wcslen(const wchar_t *p);
  220. wchar_t *r_wcscpy(wchar_t *dp, const wchar_t *sp);
  221. int r_wcsncmp(const wchar_t *p1, const wchar_t *p2, int count);
  222. wchar_t *r_wcscat(wchar_t *dp, const wchar_t *sp);
  223.  
  224. __inline int r_toupper(int c)
  225. {
  226.     if('a' <= c && c <= 'z') c -= 'a' - 'A';
  227.     return c;
  228. }
  229.  
  230. DWORDLONG r_M32x32to64(DWORD a, DWORD b);
  231.  
  232. #undef toupper
  233. #define toupper(c) r_toupper(c)
  234.  
  235. #undef strncmp
  236. #define strncmp(d, s, n) r_strncmp(d, s, n)
  237.  
  238. #undef strstr
  239. #define strstr(a,b) r_strstr(a,b)
  240.  
  241. #undef atoi
  242. #define atoi(p) r_atoi(p)
  243.  
  244. #define atox(p) r_atox(p)
  245.  
  246. #undef _wtoi
  247. #define _wtoi(p) r__wtoi(p)
  248.  
  249. #undef wcslen
  250. #define wcslen(p) r_wcslen(p)
  251.  
  252. #undef wcscpy
  253. #define wcscpy(d,s) r_wcscpy(d,s)
  254.  
  255. #undef wcscat
  256. #define wcscat(d,s) r_wcscat(d,s)
  257.  
  258. #undef wcsncmp
  259. #define wcsncmp(d,s,n) r_wcsncmp(d,s,n)
  260.  
  261. #undef malloc
  262. #define malloc(cb) HeapAlloc(GetProcessHeap(), 0, cb)
  263.  
  264. #undef free
  265. #define free(p) HeapFree(GetProcessHeap(), 0, p)
  266.  
  267. #define M32x32to64(a,b) r_M32x32to64(a,b)
  268.  
  269. #ifdef __BORLANDC__
  270.  
  271. #undef memcpy
  272. #define memcpy(d,s,l) r_memcpy(d,s,l)
  273.  
  274. #undef memset
  275. #define memset(d,c,l) r_memset(d,c,l)
  276.  
  277. #undef strlen
  278. #define strlen(s) lstrlen(s)
  279.  
  280. #undef strcat
  281. #define strcat(d, s) lstrcat(d, s)
  282.  
  283. #endif  // end of __BORLANDC__
  284.  
  285. #else   // #ifndef NODEFAULTLIB
  286.  
  287. #define atox(p) strtol((p),NULL,16)
  288.  
  289. #define M32x32to64(a,b) ((DWORDLONG)(a)*(DWORDLONG)(b))
  290.  
  291. #endif  // end of #ifdef NODEFAULTLIB
  292.  
  293. /* -- playfile.c ---------------------------------------- */
  294.  
  295. BOOL PlayFile(HWND hwnd, const char *fname, int loops);
  296. BOOL PlayFileCmdLine(HWND hwnd, const char *str);
  297. BOOL Player(HWND hwnd, const char *fname);
  298. void StopFile(void);
  299. void OnMCINotify(HWND hwnd, WPARAM wFlags, LONG lDevID);
  300. BOOL IsSoundFile(const char* fname);
  301. BOOL PauseResume(HWND hwnd);
  302. BOOL GetPlayingPosition(char *dst);
  303. BOOL PrevNextTrack(HWND hwnd, BOOL bNext);
  304. BOOL IsPrevNext(BOOL bNext);
  305. BOOL PlayMCI(HWND hwnd, const char *fname, int loops);
  306. void GetSoundFileExts(char* dst);
  307.  
  308. /* -- reg.c ---------------------------------------- */
  309.  
  310. int GetMyRegStr(const char *section, const char *entry,
  311.     char* val, int cbData, const char *defval);
  312. int GetMyRegStrW(const char *section, const char *entry,
  313.     wchar_t *dst, int cbData, const char *defval);
  314. BOOL SetMyRegStr(const char *section, const char *entry, const char *val);
  315. LONG GetMyRegLong(const char *section, const char *entry, LONG defval);
  316. BOOL SetMyRegLong(const char *section, const char *entry, DWORD val);
  317. BOOL DelMyReg(const char *section, const char *entry);
  318. BOOL DelMyRegKey(const char *section);
  319. int GetRegStr(HKEY rootkey, const char *subkey, const char *entry,
  320.     char *val, int cbData, const char *defval);
  321. LONG GetRegLong(HKEY rootkey, const char *subkey, const char *entry,
  322.     LONG defval);
  323.  
  324. /* -- selectfile.c ---------------------------------------- */
  325.  
  326. BOOL SelectMyFile(HINSTANCE hInst, HWND hDlg,
  327.     const char *filter, DWORD nFilterIndex,
  328.     const char *deffile, char *retfile);
  329. BOOL SelectFolder(HWND hDlg, const char *def, char *ret);
  330.  
  331. /* -- soundselect.c ---------------------------------------- */
  332.  
  333. BOOL BrowseSoundFile(HINSTANCE hInst, HWND hDlg,
  334.     const char *deffile, char *fname);
  335.  
  336. /* -- tclang.c ---------------------------------------- */
  337.  
  338. void CheckTCLangVersion(void);
  339. char* MyString(UINT uID, const char *entry);
  340. HFONT CreateDialogFont(void);
  341. void SetDialogLanguage(HWND hDlg, const char *section, HFONT hfont);
  342.  
  343. /* -- utl.c ---------------------------------------- */
  344.  
  345. // Windows version flag
  346. #define WIN95   0x01   // 95,98,Me
  347. #define WIN98   0x02   // 98,Me
  348. #define WINME   0x04   // Me
  349. #define WINNT   0x08   // NT4,2000,XP
  350. #define WIN2000 0x10   // 2000,XP
  351. #define WINXP   0x20   // XP
  352.  
  353. void add_title(char *path, const char* titile);
  354. void del_title(char *path);
  355. int ext_cmp(const char *fname, const char *ext);
  356. void del_ext(char* ext, char *fname);
  357. int parse(char *dst, const char *src, int n, int nMax);
  358. void parsespace(char *dst, const char *src, int n, int nMax);
  359. void str0cat(char* dst, const char* src);
  360. int isdigitstr(const char *p);
  361. const char* nextline(const char* p);
  362.  
  363. HWND GetTaskbarWindow(void);
  364. HWND GetClockWindow(void);
  365. HWND GetTClockMainWindow(void);
  366. void SendStringToOther(HWND hwnd, HWND hwndFrom, const char *s, int type);
  367. void SendStringToOtherW(HWND hwnd, HWND hwndFrom, const wchar_t *s, int type);
  368. BOOL IsFile(const char* fname);
  369. int CheckWinVersion(void);
  370. BOOL IsIE4(void);
  371. BOOL IsXPVisualStyle(void);
  372. void SetForegroundWindow98(HWND hwnd);
  373. void SetMyDialgPos(HWND hwnd, int xLen, int yLen);
  374. void WriteDebug(const char* s);
  375. void WriteDebugW(const wchar_t* s);
  376.  
  377. /* -- Macros ---------------------------------------- */
  378.  
  379. #define EnableDlgItem(hDlg,id,b) EnableWindow(GetDlgItem((hDlg),(id)),(b))
  380. #define ShowDlgItem(hDlg,id,b) ShowWindow(GetDlgItem((hDlg),(id)),(b)?SW_SHOW:SW_HIDE)
  381. #define AdjustDlgConboBoxDropDown(hDlg,id,b) AdjustConboBoxDropDown(GetDlgItem((hDlg),(id)),(b))
  382.  
  383. #define CBAddString(hDlg,id,lParam) SendDlgItemMessage((hDlg),(id),CB_ADDSTRING,0,(lParam))
  384. #define CBDeleteString(hDlg,id, i) SendDlgItemMessage((hDlg),(id),CB_DELETESTRING,(i),0)
  385. #define CBFindString(hDlg,id,s) SendDlgItemMessage((hDlg),(id),CB_FINDSTRING,0,(LPARAM)(s))
  386. #define CBFindStringExact(hDlg,id,s) SendDlgItemMessage((hDlg),(id),CB_FINDSTRINGEXACT,0,(LPARAM)(s))
  387. #define CBGetCount(hDlg,id) SendDlgItemMessage((hDlg),(id),CB_GETCOUNT,0,0)
  388. #define CBGetCurSel(hDlg,id) SendDlgItemMessage((hDlg),(id),CB_GETCURSEL,0,0)
  389. #define CBGetItemData(hDlg,id,i) SendDlgItemMessage((hDlg),(id),CB_GETITEMDATA,(i),0)
  390. #define CBGetLBText(hDlg,id,i,s) SendDlgItemMessage((hDlg),(id),CB_GETLBTEXT,(i),(LPARAM)(s))
  391. #define CBInsertString(hDlg,id,i,s) SendDlgItemMessage((hDlg),(id),CB_INSERTSTRING,(i),(LPARAM)(s))
  392. #define CBResetContent(hDlg,id) SendDlgItemMessage((hDlg),(id),CB_RESETCONTENT,0,0)
  393. #define CBSetCurSel(hDlg,id,i) SendDlgItemMessage((hDlg),(id),CB_SETCURSEL,(i),0)
  394. #define CBSetItemData(hDlg,id,i,lParam) SendDlgItemMessage((hDlg),(id),CB_SETITEMDATA,(i),(lParam))
  395.  
  396. #define UpDown_GetPos(hDlg,id) \
  397.     SendDlgItemMessage((hDlg),(id),UDM_GETPOS,0,0)
  398. #define UpDown_SetAccel(hDlg,id,nAccels,aAccels) \
  399.     SendDlgItemMessage((hDlg),(id),UDM_SETACCEL,(nAccels),(LPARAM)(aAccels))
  400. #define UpDown_SetRange(hDlg,id,nUpper,nLower) \
  401.     SendDlgItemMessage((hDlg),(id),UDM_SETRANGE,0,((nLower)<<16)|(nUpper))
  402. #define UpDown_SetBuddy(hDlg,id,idBuddy) \
  403.     SendDlgItemMessage((hDlg),(id),UDM_SETBUDDY, \
  404.         (WPARAM)GetDlgItem((hDlg),(idBuddy)),0)
  405. #define UpDown_SetPos(hDlg,id,nPos) \
  406.     SendDlgItemMessage((hDlg),(id),UDM_SETPOS,0,nPos)
  407.  
  408.